package com.lxl.todo;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.OptionalInt;
import java.util.stream.Stream;

/*
* 滑动窗口最大值
* 给你一个整数数组 nums，有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你
* 只可以看到在滑动窗口内的 k 个数字。
* 滑动窗口每次只向右移动一位。
* 输入：nums = [1,3,-1,-3,5,3,6,7], k = 3
输出：[3,3,5,5,6,7]
* */
//TODO
/*
public class Solution10 {
//    暴力破解
    public int[] maxSlidingWindow1(int[] nums, int k) {
        if (k==1) return nums;
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < nums.length; i++) {
            int max = Integer.MIN_VALUE;
            if (i + k <= nums.length) {
                for (int j = i; j < i+k; j++) {
                    max = Math.max(max, nums[j]);
                }
                list.add(max);
            }
        }
        int[] result = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            result[i] = list.get(i);
        }
        return result;
    }

    public int[] maxSlidingWindow(int[] nums, int k) {
        if (k==1) return nums;
        if(nums.length == 0 & nums == null) return nums;
        LinkedList<Integer> res = new LinkedList<>();
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] > res.getFirst()) {
                res.addLast(nums[i]);
            } else {
                res.removeFirst();
            }
        }
        return new int[]{0};

    }


    public static void main(String[] args) {
        Solution10 sol = new Solution10();
        int[] nums = {1, 3, -1, -3, 5, 3, 6, 7};

    }
}
*/
